Programmable logic devices (PLDs) exist as a well-known type of integrated circuit (IC) that may be programmed by a user to perform specified logic functions. There are different types of programmable logic devices, such as programmable logic arrays (PLAs) and complex programmable logic devices (CPLDs). One type of programmable logic device, known as a field programmable gate array (FPGA), is very popular because of a superior combination of capacity, flexibility, time-to-market, and cost.
ICs, such as PLDs, can implement various types of systems. A given system may be used to solve particular problems given particular sets of input data. In some cases, the time it takes to initialize input data into the system for a particular problem to be solved may be significant compared to the amount of time actually taken to process the data and solve the problem. In some cases, problems solved by such systems require the repeated solution of a large number of similarly structured problems. Thus, initialization of input data may directly affect overall throughput of the entire system (e.g., the number of problems solved per second).
Accordingly, there exists a need in the art for a method and apparatus initializing a system implemented in a PLD in a more efficient manner.